#define _CRT_SECURE_NO_WARNINGS 1
#include"vector.h"
#include<vector>
using namespace std;

//void Test01()
//{
//	Lead_Winder::vector<int> vv1;
//	Lead_Winder::vector<int> vv2(5, 10);
//	for (const auto& e : vv2)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	Lead_Winder::vector<int> vv3(vv2.begin(), vv2.end());
//	for (size_t i = 0; i < vv3.size(); i++)
//	{
//		cout << vv3[i] << " ";
//	}
//	cout << endl;
//
//	//std::vector<int> first;
//	//std::vector<int> second (4);  
//	//std::vector<int> vv3(vv2.begin(), vv2.end());
//	//std::vector<int> v1;
//	//std::vector<int> v3(v1);
//}


//void Test02()
//{
//	//Lead_Winder::vector<int> vv1;
//	Lead_Winder::vector<int> vv2(5, 10);
//	for (const auto& e : vv2)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	Lead_Winder::vector<int> vv3(vv2);
//	for (const auto& e : vv3)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//}

//void Test03()
//{
//	Lead_Winder::vector<int> vv1;
//	Lead_Winder::vector<int> vv2(5, 10);
//	cout << vv1.empty() << endl;
//	cout << vv2.empty() << endl;
//}
//
//void Test04()
//{
//	Lead_Winder::vector<int> vv1;
//	for (size_t i = 0; i < 10; i++)
//	{
//		vv1.push_back(i);
//	}
//
//	/*for (size_t j = 0; j < 5; j++)
//	{
//		vv1.pop_back();
//	}*/
//
//	for (auto& e : vv1)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//	cout << vv1.back() << endl;
//	cout << vv1.front() << endl;
//	//cout << vv1.at(11) <<  endl;
//}
//
//void Test05()
//{
//	Lead_Winder::vector<int> vv1;
//	for (size_t i = 0; i < 10; i++)
//	{
//		vv1.push_back(i);
//	}
//	//Lead_Winder::vector<int> vv2;
//	//vv2 = vv1;
//	//for (auto& e : vv2)
//	//{
//		//cout << e << " ";
//	//}
//	cout << endl;
//}
//
//int main()
//{
//	Test05();
//	return 0;
//}


//int main()
//{
//	Lead_Winder::vector<int> vv1(5,1);
//	for (auto e : vv1)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	//Lead_Winder::vector<int> vv2(vv1.begin(), vv1.end() - 1);
//	//for (auto e : vv2)
//	//{
//	//	cout << e << " ";
//	//}
//	//cout << endl;
//
//	std::vector<int> vv3(5,2);
//	vv3 = vv1;
//	for (auto& e : vv3)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//
//	return 0;
//}


void Test07()
{
	std::vector<int> foo(3, 0);
	std::vector<int> bar(5, 0);
	bar = foo;
	for (const auto& e : bar)
	{
		cout << e << " ";
	}
	cout << endl;
}

void Test08()
{
	std::vector<int> vv1(3, 0);
	std::vector<int> vv2(5, 0);
	vv2 = vv1; 
	for (const auto& e :vv2)
	{
		cout << e << " ";
	}
	cout << endl;
}

void Test09()
{
	Lead_Winder::vector<int> vv1(3, 0);
	//vv1.reserve(150);
	size_t Capacity = vv1.capacity();
	for (size_t i = 0; i < 100; i++)
	{
		vv1.push_back(i);
		if (Capacity != vv1.capacity())
		{
			cout << "Capacity grows:" << vv1.capacity() << endl;
			Capacity = vv1.capacity();
		}
	}
	cout << endl;
}

void Test10()
{
	Lead_Winder::vector<int> vv1(3, 0);
	vv1.clear();
	vv1.push_back(1);
	vv1.push_back(2);
	vv1.push_back(3);
	for (const auto& e : vv1)
	{
		cout << e << " ";
	}
	cout << endl;
}

void Test11()
{
	Lead_Winder::vector<int> vv1(10, 0);
	vv1.resize(20);
	for (const auto& e : vv1)
	{
		cout << e << " ";
	}
	cout << vv1.capacity() << endl;
	cout << endl;
}

int main()
{
	Test11();
	return 0;
}